import type { IInfoBase, IPageQuery, IPageData, IResponse } from '../base'

/**
 * 用户数据接口
 */
export interface IUser extends IInfoBase {
  /** 状态 */
  status?: boolean
  /** 用户名 */
  username: string
  /** 密码 */
  password?: string
  /** 真实姓名 */
  realname?: string
  /** 手机号 */
  mobile?: string
  /** 邮箱 */
  email?: string
  /** 头像 */
  avatar?: string
  /** 性别 */
  gender?: string
  /** 用户ID */
  userId: number
  /** 角色ID */
  roleId?: string
  /** 部门ID */
  departmentId?: string
}

/** 用户分页查询 */
export type IUserPageQueryDto = IPageQuery &
  Partial<
    Pick<IUser, 'username' | 'realname' | 'mobile' | 'status' | 'createdAt'>
  >

/** 用户返回数据 */
export type IUserPageData = IPageData<IUser>

/** 用户分页返回数据 */
export type IUserPageResponse = IResponse<IUserPageData>

/** 用户返回数据 */
export type IUserResponse = IResponse<IUser>
